OpenStack Newton : Use Cinder Storage (LVM)
2016/11/20 |
It's possible to use Virtual Storages provided by Cinder if an Instance needs more disks.
Configure Virtual storage with LVM backend on here.
It needs there are some free spaces on disks of Storage Node. +------------------+ 10.0.0.50| [ Storage Node ] | +------------------+ +-----+ Cinder-Volume | | [ Control Node ] | | eth0| | | Keystone |10.0.0.30 | +------------------+ | Glance |------------+ | Nova API |eth0 | +------------------+ | Cinder API | | eth0| [ Compute Node ] | +------------------+ +-----+ Nova Compute | 10.0.0.51| | +------------------+ |
[1] | Create a volume group for Cinder on Storage Node. |
root@storage:~# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created root@storage:~# vgcreate -s 32M vg_volume01 /dev/sdb1 Volume group "vg_volume01" successfully created |
[2] | Configure Cinder Volume on Storage Node. |
root@storage:~#
vi /etc/cinder/cinder.conf # add follows into the [DEFAULT] section enabled_backends = lvm # add follows to the end [lvm] iscsi_helper = tgtadm # volume group name just created volume_group = vg_volume01 # IP address of Storage Node iscsi_ip_address = 10.0.0.50 volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volumes_dir = $state_path/volumes iscsi_protocol = iscsi systemctl restart cinder-volume
|
[3] | Configure Nova on Compute Node. |
root@node01:~#
vi /etc/nova/nova.conf # add to the end [cinder] os_region_name = RegionOne systemctl restart nova-compute
|
[4] | For example, create a virtual disk "disk01" with 10GB. It's OK to work on any node. (This example is on Control Node) |
# set environment variable first root@dlp ~(keystone)# echo "export OS_VOLUME_API_VERSION=2" >> ~/keystonerc root@dlp ~(keystone)# source ~/keystonerc
openstack volume create --size 10 disk01 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2016-11-22T06:53:00.249640 | | description | None | | encrypted | False | | id | 75800972-8b41-4d0c-b13d-f97d37ee79bb | | migration_status | None | | multiattach | False | | name | disk01 | | properties | | | replication_status | disabled | | size | 10 | | snapshot_id | None | | source_volid | None | | status | creating | | type | None | | updated_at | None | | user_id | b48cbdf1975f4fd3987f83a100cc9162 | +---------------------+--------------------------------------+root@dlp ~(keystone)# openstack volume list +------------------------------+--------------+-----------+------+-------------+ | ID | Display Name | Status | Size | Attached to | +------------------------------+--------------+-----------+------+-------------+ | 75800972-8b41-4d0c-b13d- | disk01 | available | 10 | | | f97d37ee79bb | | | | | +------------------------------+--------------+-----------+------+-------------+ |
[5] | Attach the virtual disk to an Instance. For the exmaple below, the disk is connected as "/dev/vdb". It's possible to use it as a storage to create a file system on it. |
root@dlp ~(keystone)# openstack server list +--------------------+-------------+---------+--------------------+------------+ | ID | Name | Status | Networks | Image Name | +--------------------+-------------+---------+--------------------+------------+ | 94afe31b-659b-4f61 | Ubuntu_1604 | SHUTOFF | int_net=192.168.10 | Ubuntu1604 | | -bfd4-380bf440b510 | | | 0.9, 10.0.0.207 | | +--------------------+-------------+---------+--------------------+------------+
root@dlp ~(keystone)#
openstack server add volume Ubuntu_1604 disk01
# the status of attached disk turns "in-use" like follows root@dlp ~(keystone)# openstack volume list +-----------------------+--------------+--------+------+-----------------------+ | ID | Display Name | Status | Size | Attached to | +-----------------------+--------------+--------+------+-----------------------+ | 75800972-8b41-4d0c- | disk01 | in-use | 10 | Attached to | | b13d-f97d37ee79bb | | | | Ubuntu_1604 on | | | | | | /dev/vdb | +-----------------------+--------------+--------+------+-----------------------+ |